// 倒置的思路：
// 1 先找到最后一个，
// 2 依次的让后一个的引用指向前一个（与此同时每次要判断引用是否为空）

// 定义链表遍历
function bianLink(root){  //root是根节点
    var temp=root;
    while(temp!=null){
        console.log(temp.value);
        temp=temp.next;
    }
}

function Node(value){
    this.value=value;
    this.next=null;
}

// 找到最后一个链表元素
function lastNode(node) {
    if (!node || !node.next) return node;
    const result = lastNode(node.next);
    node.next.next = node;
    node.next = null;
    return result;
}


// 链表的声明和指向
const node1=new Node(111);
const node2=new Node(222);
const node3=new Node(333);
const node4=new Node(444);
const node5=new Node(555);
// 链表元素数量大于2的情况
node1.next=node2;
node2.next=node3;
node3.next=node4
node4.next=node5;
node5.next=null
const lastRoot=lastNode(node1);
console.log(lastRoot);
bianLink(lastRoot);

// 链表元素数量等于2的情况
// node1.next=node2;
// node2.next=null;
// const lastRoot=lastNode(node1);
// console.log(lastRoot);
// // console.log(lastRoot.next);
// console.log(lastRoot.next==node1);
// console.log(node1.next==lastRoot);
// 此时是相互指向